package com.rainbow.bam.service.role;

import java.util.List;

import com.rainbow.bam.entity.HtAccount;
import com.rainbow.bam.entity.HtDuty;
import com.rainbow.bam.entity.PaginationRequest;
import com.rainbow.bam.entity.PaginationResponse;

/**
 * 角色服务接口
 * 
 * @author zhaolei
 * @version $Id: HtDutyService.java, v 0.1 2015年11月19日 下午1:15:19 zhaolei Exp $
 */
public interface HtDutyService {
    /**
     * 角色保存方法
     * 
     * @param duty
     */
	public void saveRole(HtDuty duty);
	/**
	 * 权限分配方法
	 * 
	 * @param roleId
	 * @param operationIds
	 */
	public void assignOperation(Long roleId,Long[] operationIds);
	/**
	 * 获取有效的角色集合
	 * 
	 * @return
	 */
	public List<HtDuty> getAvailableRoles();
	/**
	 * 根据ID获取角色实体
	 * 
	 * @param roleId
	 * @return
	 */
	public HtDuty getRoleById(Long roleId);
	/**
	 * 根据操作类型，完成更新用户操作.
	 *
	 * @param user
	 *            用户对象
	 * @param type
	 *            操作类型
	 */
	void updateUser(List<HtAccount> user, String type);
	
	/**
     * 用户账户信息分页查询
     * 
     * @param paginationRequest 分页查询请求对象
     * @return 分页查询结果对象
     */
    public PaginationResponse<HtDuty> findAccountsByPagination(PaginationRequest paginationRequest);
	/**
	 * 根据ID数组获取角色集合
	 * 
	 * @param ids
	 * @return
	 */
	public List<HtDuty> findDatasByIds(String[] ids);
	/**
	 * 批量删除方法
	 * 
	 * @param list
	 */
	public void deleteAll(List<HtDuty> list);
}
